\documentclass[a4paper, 12pt, oneside, english,ngerman]{scrartcl}

\usepackage{etex}		%beliebig viele zaehler
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}	%utf8 als standardcodierung
\usepackage[german]{fancyref}	%ermöglicht einfache bezüge, muss vor babel stehen
\usepackage[ngerman]{babel}	%unterstuetzt formatierung multinationaler dokumente
\usepackage[breaklinks = false,linktocpage=true,linkcolor=blue,citecolor=black,filecolor=blue,colorlinks=true]{hyperref} 
%\usepackage{xcolor}

\usepackage{graphicx}		%einbinden von Bitmaps
\usepackage{float}
\usepackage{pdfpages}

\usepackage{tikz}
\usetikzlibrary{uml.activity}
\usetikzlibrary{uml.case}
\usetikzlibrary{uml.class}
%\usepackage{JHfMakro}
%\usepackage[pict2e, verification]{struktex}


\begin{document}



	\begin{titlepage}
	
	\title{Projekt "`Simulation von Atomen"' \newline \newline Lastenheft\\} 	
	
	%\date{\author  \today}
	\author{PaBuDr Software Corp.\\ pabudr@googlemail.com}
	
	\end{titlepage}
	\maketitle	
	%Indexzählung auf titelseite unterbinden und leere Seite einfügen
	\newpage 
	\thispagestyle{empty}
	\quad 
	\newpage
	\setcounter{page}{1}
	\tableofcontents
	\newpage

	\section{Zielbestimmung}
		\subsection{Musskriterien}
			
		\begin{itemize}
			\item Es soll eine einfach zu bedienende grafische Benutzungsoberfläche erstellt werden.
			\item Der Benutzer kann Größe, Anzahl, Position, Anfangsgeschwindigkeit und Startrichtung der Atome einstellen oder zufällig vom Programm belegen lassen.
			\item Die Simulation kann nach dem Start auch pausiert werden und danach fortgeführt werden.
			\item Die Atome bewegen sich nur auf einer zweidimensionalen Ebene.
			\item Die Simulation wird graphisch angezeigt, die Atome sind als Kreise darzustellen.
			\item Der Benutzer kann vor dem Start oder in einer Pause einzelne Atome farbig markieren, diese hinterlassen dann eine Spur.
			\item Wenn Atome kollidieren, sollen sie dem elastischen Stoß entsprechend ihre Richtungen und Geschwindigkeiten ändern.
			\item Die Spuren der markierten Atome können als GIF oder PNG Bilddatei abgespeichert werden.
			\item Der Benutzer kann Barrieren die von den Atomen undurchdringbar sind. Dieses sollen lediglich gerade Linien sein, die in der Länge variieren.
			\item Die Einstellungen des Simulationslaufes (Startwerte der Atome, Position und Größe der Barrieren).
			\item Tooltips und ein Hilfemenü sollen die Bedienung des Programms erläutern.
			\item Die Simulation läuft ruckelfrei ab, andernfalls wird eine Meldung ausgegeben, dass die Leistung des Computers nicht ausreicht, beispielsweise wenn man viel zuviele Atome eingestellt hat.
		\end{itemize}
		\subsection{Wunschkriterien}
		\begin{itemize}
			\item Die Zusammenstöße der Atome sollen gezählt und angezeigt werden.
			\item Zu einem Atom können seine Start- und aktuellen Werte angezeigt werden.
			\item Während der Pause einer Simulation können einzelne Atome hinzugefügt/gelöscht werden.
			\item Zusätzlich zum elastischen Stoß soll auch noch die Gravitation der Atome untereinander auf deren Richtung wirken.
			\item Neben der Möglichkeit die Größen der Atome variabel einzustellen sollen die ersten 92 Atome des Periodensystems der Elemente auswählbar sein. Dabei sollen die Isotope mit dem größten natürlichen Vorkommen gewählt werden.
		\end{itemize}
		\subsection{Abgrenzungskriterien}
		\begin{itemize}
			\item Die Atome können sich nicht zu Molekülen verbinden oder nach E=m$c^2$ zu Energie verschmelzen.
			\item Es wirken keine Van-der-Waals Kräfte.
		\end{itemize}
	\section{Produkteinsatz}
		\subsection{Anwendungsbereiche}
		\begin{itemize}
			\item Das Programm dient lediglich der Veranschaulichung von Atombewegungen und -stößen. Es kann keine wissenschaftliche Forschung damit betrieben werden.
		\end{itemize}
		\subsection{Zielgruppen}
		\begin{itemize}
			\item Jeder an Wissenschaft interessierte, TODO
		\end{itemize}
		\subsection{Betriebsbedingungen}
		\begin{itemize}
			\item Es wird ein Computer mit Monitor und Maus benötigt.
			\item Als Software wird mindestens Java 1.6 benötigt.
			\item Die Leistung des Computers soll der eines Mittelklasse-PCs der letzten 5 Jahre entsprechen.
		\end{itemize}
	\section{Produktübersicht}
		%Use-Case-Diagramm
		\begin{tikzpicture}
			\node[draw,rectangle] (sys) at (8.2, 0.68) {Simulationsflaeche};
			%\node[draw,rectangle, below, left] (sys) at (10,1) {Simulationsflaeche};
			\node (acc) at (-6,-3){\pgfActor{Noob}};
			%\node[shade,draw,shape=document,inner sep=2ex] at ([shift={(2cm,0cm)}]a) (x) {Remark};
			\node[fill=yellow!30,draw,ellipse,double] (a) at (0,0) {Atome / Barrieren einstellen};
			\node[fill=yellow!30,draw,ellipse,double] (b) at (3,-3) {Simulation starten / beenden};
			\node[fill=yellow!30,draw,ellipse,double] (c) at (0,-6)  {Atome markieren};
			\node[fill=yellow!30,draw,ellipse,double] (d) at (6,-1.5) {Startwerte speichern / laden};
			\node[fill=yellow!30,draw,ellipse,double] (e) at (2,-4.5) {Spurbild speichern};
			%\draw[dashed] (a) -- (b);
			\draw (a) -- (acc);
			\draw (b) -- (acc);
			\draw (c) -- (acc);
			\draw (d) -- (acc);
			\draw (e) -- (acc);
			
			\draw (-5, 1) -- (10, 1);%obere linie
			\draw (-5 , -7) -- (10, -7);%untere linie
			\draw (-5, 1) -- (-5, -7);%linke seitenlinie
			\draw (10, 1) -- (10, -7); %rechte seitenlinie
		\end{tikzpicture}
% 		USE-CASE Diagramm mit User User und System Simulation
% 		\begin{itemize}
% 			\item Atome/Barrieren einstellen
% 			\item Simulation starten/pausieren/beenden
% 			\item Startwerte speichern/laden
% 			\item Spurbilder speichern
% 		\end{itemize}
	\section{Produktfunktionen}
		\begin{description}
			\item[/F 10/]	Auf einer Benutzungsoberfläche kann man die verschiedenen Atome des Periodensystems auswählen und deren Radius und Masse festsetzen.
			\item[/F 20/]	Die Zusammenstöße der Atome untereinander und mit Barrieren werden mit Hilfe des elastischen Stoß berechnet.
			\item[/F 30/]	Einzelne Atome sind farbig markierbar. Dies wird vor der Simulation eingestellt. Der Benutzer kann hier aus einer Farbpalette wählen.
			\item[/F 40/]	Ein farbig markiertes Atom hinterlässt eine Spur. Damit man seinen Weg nachvollziehen kann. Diese Funktion kann aus Gründen der Übersicht ein- und ausgestellt werden.
			\item[/F 50/]	Nachdem man der Benutzer die Simulation gestoppt hat, kann er die Spuren der markierten Atome in einer Bilddatei speichern, um diese später auszuwerten.
			\item[/F 60/]	Die Startrichtung der Atome kann vom Benutzer angegeben werden oder durch einen Zufallsgenerator erzeugt werden.
			\item[/F 70/]	Der Benutzer kann bevor er die Simulation startet Barrieren in den Versuchaufbau einbauen und damit Stöße an Gegenständen simulieren.
			\item[/F 80/]	Position und Größe von Barrieren werden in Dateien gespeichert und daraus auch wieder geladen.
			\item[/F 90/]	Ein Hilfsmenü erläutert die groben Funktionen des Programms und  Möglichkeiten, die sich dem Benutzers  eröffnen.
		\end{description}
	\section{Produktdaten}
		\begin{description}
			\item[/D 10/]	Die entstandene Bilddatei der Atomspuren kann vom Benutzer ggf. gespeichert werden.
			\item[/D 20/]	Die Startbedingungen (Startpunkt, Geschwindigkeit und Anfangrichtung der Atome, Position der Barrieren)
		\end{description}
	\section{Produktleistungen}
		\begin{description}
			\item[/L 10/]	Die Simulation kann jederzeit vom Benutzer abgebrochen werden, da sie theoretisch keine festgelegte Abbruchbedingung hat.
			\item[/L 20/]	Die Bewegung der Atome über den Bildschirm läuft fließend ab ohne Verzögerungen.
			\item[/L 30/]	Fehler vom Benutzer werden durch geeignete Überprüfungen frühzeitig erkannt markiert..
		\end{description}
	\section{Qualitätsanforderungen}
		Fehler sollen ohne Abbruch des Programms erkannt und anschließend dem Benutzer mitgeteilt werden. Außerdem soll die Benutzungsoberfläche verständlich sein (geeignete Beschriftung)
	\section{Benutzungsoberfläche}
	
	\section{Nichtfunktionale Anforderungen}
	\section{Technische Produktumgebung}
		\subsection{Software}
		\subsection{Hardware}
		\subsection{Orgware}
		\subsection{Produktschnittstellen}
	\section{Spezielle Anforderungen an die Entwicklungsumgebung}
		\subsection{Software}
		\subsection{Hardware}
		\subsection{Orgware}
		\subsection{Entwicklungsschnittstellen}
	\section{Gliederung in Teilprodukte}
	\section{Ergänzungen}
	\section{Glossar}
















\end{document}